Hypertext transfer protocol (HTTP) is an application protocol for distributed, collaborative, hypermedia information systems used to exchange or transfer hypertext. HTTP is the foundation of data communication for the World Wide Web. Hypertext is structured text that uses logical links (hyperlinks) between nodes containing text.
HTTP functions as a request-response protocol in the client-server computing model. A web browser, for example, may be the client and an application running on a computer hosting a web site may be the server. The client can submit an HTTP request message to the server. The server, which provides resources such as HTML files and other content, or performs other functions on behalf of the client, can return a response message to the client. The response message can contain completion status information about the request and can also contain requested content in its message body.
A web browser is an example of a user agent (UA). Other types of user agents include the indexing software used by search providers (web crawlers), voice browsers, mobile apps, and other software that accesses, consumes, or displays web content. HTTP is designed to permit intermediate network elements to improve or enable communications between clients and servers. High-traffic websites often benefit from web cache servers that deliver content on behalf of upstream servers to improve response time. Web browsers can cache previously accessed web resources and reuse them when possible to reduce network traffic. HTTP proxy servers at private network boundaries can facilitate communication for clients, without a globally mutable address, by relaying messages with external servers.
Multipath transmission control protocol (MPTCP) connections can allow for usage of multiple paths to maximize resource usage and increase redundancy within the HTTP application protocol. The redundancy offered by MPTCP can enable inverse multiplexing of resources, and thus increase transmission control protocol (TCP) throughput close to the sum of all available link-level channels instead of using a single channel as required by plain TCP.
MPTCP is particularly useful in the context of wireless networks—using both Wi-Fi and a mobile network is a typical use case. In addition to the gains in throughput from inverse multiplexing, links may be added or dropped as a user moves in or out of coverage without disrupting the end-to-end TCP connection. The problem of link-handover is addressed by abstraction in the transport layer, without any special mechanisms at the network or link level. Handover functionality can then be implemented endpoints without requiring special functionality in the subnetworks in accordance with the Internet's end-to-end principle. MPTCP can also bring performance benefits in datacenter environments. In contrast to Ethernet channel bonding using 802.3ad link aggregation, MPTCP can balance a single TCP connection across multiple interfaces.
The above-described background relating to an HTTP application protocol and MPTCP is merely intended to provide a contextual overview of some current issues, and is not intended to be exhaustive. Other contextual information may become further apparent upon review of the following detailed description.